Properties
M is a Imperative Structured programming Procedural programming Modular programming Data oriented programming DSL Compiled External C-like concrete syntax textual Scratch like visual syntax Abstract syntax is a EMF model Strongly typed with implicit types Type inferred and validated No null reference, no type conversion error, no infinite loop Execution semantics: Game engine projects with assets Useful for non programmers Turing complete Efficient compilation Efficient generated code, native multi threaded Clean: Native support for DOD Full IDE support:
- Code completion
- Code generation
- Syntax Highlight
- Error markers
- Quick fixes
- Formatting
- Refactoring
- Labels
- Outline view
- Find uses
- Find definition
- Debugging
Small syntax Concise User defined abstractions: Files as libraries, functions for reusability, prefabs possibly nested Fast and volatile development of language No collections, all entities Big language scope: Most games M improves:
- Productivity: Less code to write and read
- Quality: No runtime errors, halts, multi threaded
- Communication and thinking: Familiar domain concepts, different interfaces
- Platform support: Any platform with JVM any platform with Unity support